Add patch from Jonathan Blandford and Anders Carlsson to change the Paned
authorOwen Taylor <otaylor@redhat.com>
Thu, 17 Feb 2000 22:12:25 +0000 (22:12 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Thu, 17 Feb 2000 22:12:25 +0000 (22:12 +0000)
Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>

* gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
and Anders Carlsson to change the Paned widgets so that they
can be dragged from anywhere along the length. Also change
the way that this is drawn to make this apparent.

* gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
from George Lebl to check that option_menu->menu is present
before getting history.

15 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/Changes-1.4.txt
gtk/gtkhpaned.c
gtk/gtkhpaned.h
gtk/gtkoptionmenu.c
gtk/gtkpaned.c
gtk/gtkpaned.h
gtk/gtkvpaned.c
gtk/gtkvpaned.h

index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 587d40e11ba3244e36cb49bfc4db467b3af75497..0e3f512a90022dce9140cef582ab55b2c2d2e687 100644 (file)
@@ -1,3 +1,14 @@
+Thu Feb 17 17:10:12 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford
+       and Anders Carlsson to change the Paned widgets so that they
+       can be dragged from anywhere along the length. Also change
+       the way that this is drawn to make this apparent.
+
+       * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch
+       from George Lebl to check that option_menu->menu is present
+       before getting history.
+
 2000-02-14  Tor Lillqvist  <tml@iki.fi>
 
        * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments
index 6de4d63810629cde9e0584d85ceb84475fad22d3..8e88c57e5edddda3a5bdd4a4fc7d5ac71a213051 100644 (file)
@@ -9,3 +9,7 @@ Incompatible Changes from GTK+-1.2 to GTK+-1.4:
   match what we do for glib, and other similar cases.
 
 - The detail arguments in the GtkStyleClass structure are now 'const gchar *'.
+
+- gtk_paned_set_gutter_size() has been removed, since the small handle tab
+  has been changed to include the entire area previously occupied by
+  the gutter.
index a561288055bb14957eab095360339ba0647613c7..b757907f67bb6d73f532531de948ca1525b8b2ec 100644 (file)
@@ -1,3 +1,4 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /* GTK - The GIMP Toolkit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  *
  */
 
 #include "gtkhpaned.h"
-#include "gtkmain.h"
-#include "gtksignal.h"
-
-static void gtk_hpaned_class_init       (GtkHPanedClass *klass);
-static void gtk_hpaned_init             (GtkHPaned      *hpaned);
-static void gtk_hpaned_size_request     (GtkWidget      *widget,
-                                        GtkRequisition *requisition);
-static void gtk_hpaned_size_allocate    (GtkWidget          *widget,
-                                        GtkAllocation      *allocation);
-static void gtk_hpaned_draw             (GtkWidget    *widget,
-                                        GdkRectangle *area);
-static void gtk_hpaned_xor_line         (GtkPaned *paned);
-static gint gtk_hpaned_button_press     (GtkWidget *widget,
-                                        GdkEventButton *event);
-static gint gtk_hpaned_button_release   (GtkWidget *widget,
-                                        GdkEventButton *event);
-static gint gtk_hpaned_motion           (GtkWidget *widget,
-                                        GdkEventMotion *event);
+
+static void     gtk_hpaned_class_init     (GtkHPanedClass *klass);
+static void     gtk_hpaned_init           (GtkHPaned      *hpaned);
+static void     gtk_hpaned_size_request   (GtkWidget      *widget,
+                                          GtkRequisition *requisition);
+static void     gtk_hpaned_size_allocate  (GtkWidget      *widget,
+                                          GtkAllocation  *allocation);
+static void     gtk_hpaned_draw           (GtkWidget      *widget,
+                                          GdkRectangle   *area);
+static void     gtk_hpaned_xor_line       (GtkPaned       *paned);
+static gboolean gtk_hpaned_button_press   (GtkWidget      *widget,
+                                          GdkEventButton *event);
+static gboolean gtk_hpaned_button_release (GtkWidget      *widget,
+                                          GdkEventButton *event);
+static gboolean gtk_hpaned_motion         (GtkWidget      *widget,
+                                          GdkEventMotion *event);
 
 GtkType
 gtk_hpaned_get_type (void)
@@ -59,8 +58,8 @@ gtk_hpaned_get_type (void)
        (GtkClassInitFunc) gtk_hpaned_class_init,
        (GtkObjectInitFunc) gtk_hpaned_init,
        /* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
+       /* reserved_2 */ NULL,
+       (GtkClassInitFunc) NULL,
       };
 
       hpaned_type = gtk_type_unique (GTK_TYPE_PANED, &hpaned_info);
@@ -74,7 +73,7 @@ gtk_hpaned_class_init (GtkHPanedClass *class)
 {
   GtkWidgetClass *widget_class;
 
-  widget_class = (GtkWidgetClass*) class;
+  widget_class = (GtkWidgetClass *) class;
 
   widget_class->size_request = gtk_hpaned_size_request;
   widget_class->size_allocate = gtk_hpaned_size_allocate;
@@ -87,9 +86,17 @@ gtk_hpaned_class_init (GtkHPanedClass *class)
 static void
 gtk_hpaned_init (GtkHPaned *hpaned)
 {
+  GtkPaned *paned;
+
+  g_return_if_fail (hpaned != NULL);
+  g_return_if_fail (GTK_IS_PANED (hpaned));
+
+  paned = GTK_PANED (hpaned);
+  
+  paned->cursor_type = GDK_SB_H_DOUBLE_ARROW;
 }
 
-GtkWidget*
+GtkWidget *
 gtk_hpaned_new (void)
 {
   GtkHPaned *hpaned;
@@ -130,7 +137,7 @@ gtk_hpaned_size_request (GtkWidget      *widget,
       requisition->width += child_requisition.width;
     }
 
-  requisition->width += GTK_CONTAINER (paned)->border_width * 2 + paned->gutter_size;
+  requisition->width += GTK_CONTAINER (paned)->border_width * 2 + paned->handle_size;
   requisition->height += GTK_CONTAINER (paned)->border_width * 2;
 }
 
@@ -143,7 +150,6 @@ gtk_hpaned_size_allocate (GtkWidget     *widget,
   GtkRequisition child2_requisition;
   GtkAllocation child1_allocation;
   GtkAllocation child2_allocation;
-  GdkRectangle old_groove_rectangle;
   guint16 border_width;
 
   g_return_if_fail (widget != NULL);
@@ -164,72 +170,52 @@ gtk_hpaned_size_allocate (GtkWidget     *widget,
     gtk_widget_get_child_requisition (paned->child2, &child2_requisition);
   else
     child2_requisition.width = 0;
-    
+
   gtk_paned_compute_position (paned,
                              widget->allocation.width
-                               - paned->gutter_size
+                               - paned->handle_size
                                - 2 * border_width,
                              child1_requisition.width,
                              child2_requisition.width);
-  
+
   /* Move the handle before the children so we don't get extra expose events */
 
-  paned->handle_xpos = paned->child1_size + border_width + paned->gutter_size / 2 - paned->handle_size / 2;
-  paned->handle_ypos = allocation->height - border_width - 2*paned->handle_size;
+  paned->handle_xpos = paned->child1_size + border_width;
+  paned->handle_ypos = 0;
+  paned->handle_width = paned->handle_size;
+  paned->handle_height = widget->allocation.height;
 
   if (GTK_WIDGET_REALIZED (widget))
     {
       gdk_window_move_resize (widget->window,
                              allocation->x, allocation->y,
-                             allocation->width, allocation->height);
-      
-      gdk_window_move (paned->handle, paned->handle_xpos, paned->handle_ypos);
+                             allocation->width,
+                             allocation->height);
+
+      gdk_window_move_resize (paned->handle,
+                             paned->handle_xpos,
+                             paned->handle_ypos,
+                             paned->handle_size,
+                             paned->handle_height);
     }
 
-  child1_allocation.height = child2_allocation.height = MAX (1, (gint)allocation->height - border_width * 2);
+  child1_allocation.height = child2_allocation.height = MAX (1, (gint) allocation->height - border_width * 2);
   child1_allocation.width = paned->child1_size;
   child1_allocation.x = border_width;
   child1_allocation.y = child2_allocation.y = border_width;
-  
-  old_groove_rectangle = paned->groove_rectangle;
-
-  paned->groove_rectangle.x = child1_allocation.x 
-    + child1_allocation.width + paned->gutter_size / 2 - 1;
-  paned->groove_rectangle.y = 0;
-  paned->groove_rectangle.width = 2;
-  paned->groove_rectangle.height = allocation->height;
-      
-  if (GTK_WIDGET_DRAWABLE (widget) &&
-      ((paned->groove_rectangle.x != old_groove_rectangle.x) ||
-       (paned->groove_rectangle.y != old_groove_rectangle.y) ||
-       (paned->groove_rectangle.width != old_groove_rectangle.width) ||
-       (paned->groove_rectangle.height != old_groove_rectangle.height)))
-    {
-      gtk_widget_queue_clear_area (widget,
-                                  old_groove_rectangle.x,
-                                  old_groove_rectangle.y,
-                                  old_groove_rectangle.width,
-                                  old_groove_rectangle.height);
-      gtk_widget_queue_draw_area (widget,
-                                 paned->groove_rectangle.x,
-                                 paned->groove_rectangle.y,
-                                 paned->groove_rectangle.width,
-                                 paned->groove_rectangle.height);
-    }
-  
-  child2_allocation.x = paned->groove_rectangle.x + paned->gutter_size / 2 + 1;
-  child2_allocation.width = MAX (1, (gint)allocation->width
-    - child2_allocation.x - border_width);
-  
+
+  child2_allocation.x = child1_allocation.x + child1_allocation.width +  paned->handle_width;
+  child2_allocation.width = MAX (1, (gint) allocation->width - child2_allocation.x - border_width);
+
   /* Now allocate the childen, making sure, when resizing not to
    * overlap the windows */
-  if (GTK_WIDGET_MAPPED(widget) &&
+  if (GTK_WIDGET_MAPPED (widget) &&
       paned->child1 && GTK_WIDGET_VISIBLE (paned->child1) &&
       paned->child1->allocation.width < child1_allocation.width)
     {
       if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2))
        gtk_widget_size_allocate (paned->child2, &child2_allocation);
-      gtk_widget_size_allocate (paned->child1, &child1_allocation);      
+      gtk_widget_size_allocate (paned->child1, &child1_allocation);
     }
   else
     {
@@ -242,7 +228,7 @@ gtk_hpaned_size_allocate (GtkWidget     *widget,
 
 static void
 gtk_hpaned_draw (GtkWidget    *widget,
-               GdkRectangle *area)
+                GdkRectangle *area)
 {
   GtkPaned *paned;
   GdkRectangle handle_area, child_area;
@@ -251,52 +237,97 @@ gtk_hpaned_draw (GtkWidget    *widget,
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_PANED (widget));
 
-  if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget))
+  if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget)) 
     {
-      gint width, height;
-      
       paned = GTK_PANED (widget);
       border_width = GTK_CONTAINER (paned)->border_width;
 
       gdk_window_clear_area (widget->window,
-                            area->x, area->y, area->width, area->height);
+                            area->x, area->y, area->width,
+                            area->height);
 
-      /* Redraw the handle
-       */
-      gdk_window_get_size (paned->handle, &width, &height);
-      
       handle_area.x = paned->handle_xpos;
       handle_area.y = paned->handle_ypos;
-      handle_area.width = width;
-      handle_area.height = height;
+      handle_area.width = paned->handle_size;
+      handle_area.height = paned->handle_height;
 
       if (gdk_rectangle_intersect (&handle_area, area, &child_area))
        {
-         child_area.x -= handle_area.x;
-         child_area.y -= handle_area.y;
-         gtk_paint_box (widget->style, paned->handle,
-                        GTK_WIDGET_STATE(widget),
-                        GTK_SHADOW_OUT, 
-                        &child_area, widget, "paned",
-                        0, 0,
-                        width, height);
+         if (widget->allocation.height > 2)
+           { 
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 - 1);
+           }
+         if (widget->allocation.height > 11)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 + 5);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 + 4);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 - 5);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 - 6);
+           }
+         if (widget->allocation.height > 20)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 - 10);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 - 11);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 + 10);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 + 9);
+           }
+         if (widget->allocation.height > 30)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 - 15);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 - 16);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_size/2,
+                             paned->handle_height/2 + 15);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_size/2 - 1,
+                             paned->handle_height/2 + 14);
+           }
        }
-
-      /* Redraw the groove
-       */
-      gtk_paint_vline(widget->style, widget->window, GTK_STATE_NORMAL,
-                     area, widget, "hpaned", 
-                     0, widget->allocation.height - 1,
-                     border_width + paned->child1_size + paned->gutter_size / 2 - 1);
       /* Redraw the children
        */
-      if (paned->child1 &&
-         gtk_widget_intersect (paned->child1, area, &child_area))
-        gtk_widget_draw (paned->child1, &child_area);
-      if (paned->child2 &&
-         gtk_widget_intersect (paned->child2, area, &child_area))
-        gtk_widget_draw (paned->child2, &child_area);
-
+      if (paned->child1 && gtk_widget_intersect (paned->child1, area, &child_area))
+       gtk_widget_draw(paned->child1, &child_area);
+      if (paned->child2 && gtk_widget_intersect(paned->child2, area, &child_area))
+       gtk_widget_draw(paned->child2, &child_area);
     }
 }
 
@@ -315,12 +346,14 @@ gtk_hpaned_xor_line (GtkPaned *paned)
       values.subwindow_mode = GDK_INCLUDE_INFERIORS;
       paned->xor_gc = gdk_gc_new_with_values (widget->window,
                                              &values,
-                                             GDK_GC_FUNCTION |
-                                             GDK_GC_SUBWINDOW);
+                                             GDK_GC_FUNCTION | GDK_GC_SUBWINDOW);
     }
 
+  gdk_gc_set_line_attributes (paned->xor_gc, 2, GDK_LINE_SOLID,
+                             GDK_CAP_NOT_LAST, GDK_JOIN_BEVEL);
+
   xpos = paned->child1_size
-    + GTK_CONTAINER (paned)->border_width + paned->gutter_size / 2;
+    + GTK_CONTAINER (paned)->border_width + paned->handle_size / 2;
 
   gdk_draw_line (widget->window, paned->xor_gc,
                 xpos,
@@ -329,44 +362,49 @@ gtk_hpaned_xor_line (GtkPaned *paned)
                 widget->allocation.height - 1);
 }
 
-static gint
-gtk_hpaned_button_press (GtkWidget *widget, GdkEventButton *event)
+static gboolean
+gtk_hpaned_button_press (GtkWidget      *widget,
+                        GdkEventButton *event)
 {
   GtkPaned *paned;
 
-  g_return_val_if_fail (widget != NULL,FALSE);
-  g_return_val_if_fail (GTK_IS_PANED (widget),FALSE);
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
 
   paned = GTK_PANED (widget);
 
   if (!paned->in_drag &&
-      (event->window == paned->handle) && (event->button == 1))
+      event->window == paned->handle && event->button == 1)
     {
       paned->in_drag = TRUE;
       /* We need a server grab here, not gtk_grab_add(), since
        * we don't want to pass events on to the widget's children */
-      gdk_pointer_grab (paned->handle, FALSE,
-                       GDK_POINTER_MOTION_HINT_MASK 
-                       | GDK_BUTTON1_MOTION_MASK 
-                       | GDK_BUTTON_RELEASE_MASK,
-                       NULL, NULL, event->time);
+      gdk_pointer_grab(paned->handle, FALSE,
+                      GDK_POINTER_MOTION_HINT_MASK
+                      | GDK_BUTTON1_MOTION_MASK
+                      | GDK_BUTTON_RELEASE_MASK,
+                      NULL, NULL, event->time);
       paned->child1_size += event->x - paned->handle_size / 2;
       paned->child1_size = CLAMP (paned->child1_size, 0,
-                                  widget->allocation.width - paned->gutter_size
-                                  - 2 * GTK_CONTAINER (paned)->border_width);
+                                 widget->allocation.width
+                                 - paned->handle_size
+                                 - 2 * GTK_CONTAINER (paned)->border_width);
       gtk_hpaned_xor_line (paned);
+
+      return TRUE;
     }
 
-  return TRUE;
+  return FALSE;
 }
 
-static gint
-gtk_hpaned_button_release (GtkWidget *widget, GdkEventButton *event)
+static gboolean
+gtk_hpaned_button_release (GtkWidget      *widget,
+                          GdkEventButton *event)
 {
   GtkPaned *paned;
 
-  g_return_val_if_fail (widget != NULL,FALSE);
-  g_return_val_if_fail (GTK_IS_PANED (widget),FALSE);
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
 
   paned = GTK_PANED (widget);
 
@@ -377,13 +415,16 @@ gtk_hpaned_button_release (GtkWidget *widget, GdkEventButton *event)
       paned->position_set = TRUE;
       gdk_pointer_ungrab (event->time);
       gtk_widget_queue_resize (GTK_WIDGET (paned));
+
+      return TRUE;
     }
 
-  return TRUE;
+  return FALSE;
 }
 
-static gint
-gtk_hpaned_motion (GtkWidget *widget, GdkEventMotion *event)
+static gboolean
+gtk_hpaned_motion (GtkWidget      *widget,
+                  GdkEventMotion *event)
 {
   GtkPaned *paned;
   gint x;
@@ -400,12 +441,10 @@ gtk_hpaned_motion (GtkWidget *widget, GdkEventMotion *event)
 
   if (paned->in_drag)
     {
-      gint size = x - GTK_CONTAINER (paned)->border_width - paned->gutter_size/2;
-      
+      gint size = x - GTK_CONTAINER (paned)->border_width - paned->handle_size / 2;
+
       gtk_hpaned_xor_line (paned);
-      paned->child1_size = CLAMP (size,
-                                 paned->min_position,
-                                 paned->max_position);
+      paned->child1_size = CLAMP (size, paned->min_position, paned->max_position);
       gtk_hpaned_xor_line (paned);
     }
 
index 2b3e3b0969b4fbcbcf4bac0cd2c24f2c7f7b9a27..3b5a593a069aee4730092c6114f9c7be70c9f7cd 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 /*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
 #ifndef __GTK_HPANED_H__
 #define __GTK_HPANED_H__
 
-
-#include <gdk/gdk.h>
 #include <gtk/gtkpaned.h>
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
-
 #define GTK_TYPE_HPANED                   (gtk_hpaned_get_type ())
 #define GTK_HPANED(obj)            (GTK_CHECK_CAST ((obj), GTK_TYPE_HPANED, GtkHPaned))
 #define GTK_HPANED_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_HPANED, GtkHPanedClass))
@@ -45,8 +41,8 @@ extern "C" {
 #define GTK_HPANED_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_HPANED, GtkHPanedClass))
 
 
-typedef struct _GtkHPaned       GtkHPaned;
-typedef struct _GtkHPanedClass  GtkHPanedClass;
+typedef struct _GtkHPaned      GtkHPaned;
+typedef struct _GtkHPanedClass GtkHPanedClass;
 
 struct _GtkHPaned
 {
@@ -58,14 +54,11 @@ struct _GtkHPanedClass
   GtkPanedClass parent_class;
 };
 
-
 GtkType    gtk_hpaned_get_type (void);
-GtkWidget* gtk_hpaned_new      (void);
-
+GtkWidget *gtk_hpaned_new      (void);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
-
 #endif /* __GTK_HPANED_H__ */
index c4d4009e07b4c1026a0de1277e0ae7f0d56e94b8..c3ea92ada687541235a97f98e69e144843d5dec2 100644 (file)
@@ -250,12 +250,17 @@ gtk_option_menu_get_history (GtkOptionMenu *option_menu)
   GtkWidget *active_widget;
   
   g_return_val_if_fail (GTK_IS_OPTION_MENU (option_menu), -1);
-  
-  active_widget = gtk_menu_get_active (GTK_MENU (option_menu->menu));
 
-  if (active_widget)
-    return g_list_index (GTK_MENU_SHELL (option_menu->menu)->children,
+  if (option_menu->menu)
+    {
+      active_widget = gtk_menu_get_active (GTK_MENU (option_menu->menu));
+
+      if (active_widget)
+       return g_list_index (GTK_MENU_SHELL (option_menu->menu)->children,
                         active_widget);
+      else
+       return -1;
+    }
   else
     return -1;
 }
index 3a6929fc0b56f62fafca29cbbc42a1d7a6dbf9f1..e3b262d177291d4732d65d1654fd633477d115bf 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 /*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
 
 enum {
   ARG_0,
-  ARG_HANDLE_SIZE,
-  ARG_GUTTER_SIZE
+  ARG_HANDLE_SIZE
 };
 
-static void gtk_paned_class_init (GtkPanedClass    *klass);
-static void gtk_paned_init       (GtkPaned         *paned);
-static void gtk_paned_set_arg   (GtkObject        *object,
-                                 GtkArg           *arg,
-                                 guint             arg_id);
-static void gtk_paned_get_arg   (GtkObject        *object,
-                                 GtkArg           *arg,
-                                 guint             arg_id);
-static void gtk_paned_realize    (GtkWidget *widget);
-static void gtk_paned_map        (GtkWidget      *widget);
-static void gtk_paned_unmap      (GtkWidget      *widget);
-static void gtk_paned_unrealize  (GtkWidget *widget);
-static gint gtk_paned_expose     (GtkWidget      *widget,
-                                 GdkEventExpose *event);
-static void gtk_paned_add        (GtkContainer   *container,
-                                 GtkWidget      *widget);
-static void gtk_paned_remove     (GtkContainer   *container,
-                                 GtkWidget      *widget);
-static void gtk_paned_forall     (GtkContainer   *container,
-                                 gboolean        include_internals,
-                                 GtkCallback     callback,
-                                 gpointer        callback_data);
-static GtkType gtk_paned_child_type (GtkContainer *container);
-
+static void    gtk_paned_class_init (GtkPanedClass  *klass);
+static void    gtk_paned_init       (GtkPaned       *paned);
+static void    gtk_paned_set_arg    (GtkObject      *object,
+                                    GtkArg         *arg,
+                                    guint           arg_id);
+static void    gtk_paned_get_arg    (GtkObject      *object,
+                                    GtkArg         *arg,
+                                    guint           arg_id);
+static void    gtk_paned_realize    (GtkWidget      *widget);
+static void    gtk_paned_map        (GtkWidget      *widget);
+static void    gtk_paned_unmap      (GtkWidget      *widget);
+static void    gtk_paned_unrealize  (GtkWidget      *widget);
+static gint    gtk_paned_expose     (GtkWidget      *widget,
+                                    GdkEventExpose *event);
+static void    gtk_paned_add        (GtkContainer   *container,
+                                    GtkWidget      *widget);
+static void    gtk_paned_remove     (GtkContainer   *container,
+                                    GtkWidget      *widget);
+static void    gtk_paned_forall     (GtkContainer   *container,
+                                    gboolean        include_internals,
+                                    GtkCallback     callback,
+                                    gpointer        callback_data);
+static GtkType gtk_paned_child_type (GtkContainer   *container);
 
 static GtkContainerClass *parent_class = NULL;
 
@@ -76,9 +74,9 @@ gtk_paned_get_type (void)
        (GtkObjectInitFunc) gtk_paned_init,
        /* reserved_1 */ NULL,
        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
+       (GtkClassInitFunc) NULL,
       };
-      
+
       paned_type = gtk_type_unique (GTK_TYPE_CONTAINER, &paned_info);
     }
   
@@ -91,13 +89,13 @@ gtk_paned_class_init (GtkPanedClass *class)
   GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkContainerClass *container_class;
-  
-  object_class = (GtkObjectClass*) class;
-  widget_class = (GtkWidgetClass*) class;
-  container_class = (GtkContainerClass*) class;
-  
+
+  object_class = (GtkObjectClass *) class;
+  widget_class = (GtkWidgetClass *) class;
+  container_class = (GtkContainerClass *) class;
+
   parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
-  
+
   object_class->set_arg = gtk_paned_set_arg;
   object_class->get_arg = gtk_paned_get_arg;
 
@@ -112,10 +110,8 @@ gtk_paned_class_init (GtkPanedClass *class)
   container_class->forall = gtk_paned_forall;
   container_class->child_type = gtk_paned_child_type;
 
-  gtk_object_add_arg_type ("GtkPaned::handle_size", GTK_TYPE_UINT,
-                          GTK_ARG_READWRITE, ARG_HANDLE_SIZE);
-  gtk_object_add_arg_type ("GtkPaned::gutter_size", GTK_TYPE_UINT,
-                          GTK_ARG_READWRITE, ARG_GUTTER_SIZE);
+  gtk_object_add_arg_type("GtkPaned::handle_size", GTK_TYPE_UINT,
+                         GTK_ARG_READWRITE, ARG_HANDLE_SIZE);
 }
 
 static GtkType
@@ -136,9 +132,11 @@ gtk_paned_init (GtkPaned *paned)
   paned->child2 = NULL;
   paned->handle = NULL;
   paned->xor_gc = NULL;
+  paned->cursor_type = GDK_CROSS;
   
-  paned->handle_size = 10;
-  paned->gutter_size = 6;
+  paned->handle_width = 5;
+  paned->handle_height = 5;
+  paned->handle_size = 5;
   paned->position_set = FALSE;
   paned->last_allocation = -1;
   paned->in_drag = FALSE;
@@ -159,8 +157,7 @@ gtk_paned_set_arg (GtkObject *object,
     case ARG_HANDLE_SIZE:
       gtk_paned_set_handle_size (paned, GTK_VALUE_UINT (*arg));
       break;
-    case ARG_GUTTER_SIZE:
-      gtk_paned_set_gutter_size (paned, GTK_VALUE_UINT (*arg));
+    default:
       break;
     }
 }
@@ -171,15 +168,12 @@ gtk_paned_get_arg (GtkObject *object,
                   guint      arg_id)
 {
   GtkPaned *paned = GTK_PANED (object);
-  
+
   switch (arg_id)
     {
     case ARG_HANDLE_SIZE:
       GTK_VALUE_UINT (*arg) = paned->handle_size;
       break;
-    case ARG_GUTTER_SIZE:
-      GTK_VALUE_UINT (*arg) = paned->gutter_size;
-      break;
     default:
       arg->type = GTK_TYPE_INVALID;
       break;
@@ -192,13 +186,13 @@ gtk_paned_realize (GtkWidget *widget)
   GtkPaned *paned;
   GdkWindowAttr attributes;
   gint attributes_mask;
-  
+
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_PANED (widget));
-  
+
   GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
   paned = GTK_PANED (widget);
-  
+
   attributes.x = widget->allocation.x;
   attributes.y = widget->allocation.y;
   attributes.width = widget->allocation.width;
@@ -209,34 +203,34 @@ gtk_paned_realize (GtkWidget *widget)
   attributes.colormap = gtk_widget_get_colormap (widget);
   attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-  
-  widget->window = gdk_window_new (gtk_widget_get_parent_window (widget),
+
+  widget->window = gdk_window_new (gtk_widget_get_parent_window(widget),
                                   &attributes, attributes_mask);
   gdk_window_set_user_data (widget->window, paned);
-  
+
   attributes.x = paned->handle_xpos;
   attributes.y = paned->handle_ypos;
-  attributes.width = paned->handle_size;
-  attributes.height = paned->handle_size;
-  attributes.cursor = gdk_cursor_new (GDK_CROSS);
+  attributes.width = paned->handle_width;
+  attributes.height = paned->handle_height;
+  attributes.cursor = gdk_cursor_new (paned->cursor_type);
   attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
                            GDK_BUTTON_RELEASE_MASK |
                            GDK_POINTER_MOTION_MASK |
                            GDK_POINTER_MOTION_HINT_MASK);
   attributes_mask |= GDK_WA_CURSOR;
-  
+
   paned->handle = gdk_window_new (widget->window,
                                  &attributes, attributes_mask);
   gdk_window_set_user_data (paned->handle, paned);
   gdk_cursor_destroy (attributes.cursor);
-  
+
   widget->style = gtk_style_attach (widget->style, widget->window);
-  
+
   gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
   gtk_style_set_background (widget->style, paned->handle, GTK_STATE_NORMAL);
 
   gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
-  
+
   gdk_window_show (paned->handle);
 }
 
@@ -244,13 +238,13 @@ static void
 gtk_paned_map (GtkWidget *widget)
 {
   GtkPaned *paned;
-  
+
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_PANED (widget));
-  
+
   GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
   paned = GTK_PANED (widget);
-  
+
   if (paned->child1 &&
       GTK_WIDGET_VISIBLE (paned->child1) &&
       !GTK_WIDGET_MAPPED (paned->child1))
@@ -268,9 +262,9 @@ gtk_paned_unmap (GtkWidget *widget)
 {
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_PANED (widget));
-  
+
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
-  
+
   gdk_window_hide (widget->window);
 }
 
@@ -278,25 +272,25 @@ static void
 gtk_paned_unrealize (GtkWidget *widget)
 {
   GtkPaned *paned;
-  
+
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_PANED (widget));
-  
+
   paned = GTK_PANED (widget);
-  
+
   if (paned->xor_gc)
     {
       gdk_gc_destroy (paned->xor_gc);
       paned->xor_gc = NULL;
     }
-  
+
   if (paned->handle)
     {
       gdk_window_set_user_data (paned->handle, NULL);
       gdk_window_destroy (paned->handle);
       paned->handle = NULL;
     }
-  
+
   if (GTK_WIDGET_CLASS (parent_class)->unrealize)
     (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
 }
@@ -307,24 +301,21 @@ gtk_paned_expose (GtkWidget      *widget,
 {
   GtkPaned *paned;
   GdkEventExpose child_event;
-  
+
   g_return_val_if_fail (widget != NULL, FALSE);
   g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
-  
+
   if (GTK_WIDGET_DRAWABLE (widget))
     {
       paned = GTK_PANED (widget);
-      
-      /* An expose event for the handle */
+
       if (event->window == paned->handle)
        {
-          gtk_paint_box (widget->style, paned->handle,
-                         GTK_WIDGET_STATE(widget),
-                         GTK_SHADOW_OUT, 
-                         &event->area, widget, "paned",
-                         0, 0,
-                         paned->handle_size, paned->handle_size);
+         child_event = *event;
+         event->area.x += paned->handle_xpos;
+         event->area.y += paned->handle_ypos;
+         gtk_widget_draw (widget, &event->area);
        }
       else
        {
@@ -332,26 +323,21 @@ gtk_paned_expose (GtkWidget      *widget,
          if (paned->child1 &&
              GTK_WIDGET_NO_WINDOW (paned->child1) &&
              gtk_widget_intersect (paned->child1, &event->area, &child_event.area))
-           gtk_widget_event (paned->child1, (GdkEvent*) &child_event);
-         
+           gtk_widget_event (paned->child1, (GdkEvent *) &child_event);
+
          if (paned->child2 &&
              GTK_WIDGET_NO_WINDOW (paned->child2) &&
              gtk_widget_intersect (paned->child2, &event->area, &child_event.area))
-           gtk_widget_event (paned->child2, (GdkEvent*) &child_event);
-         
-         /* redraw the groove if necessary */
-         if (gdk_rectangle_intersect (&paned->groove_rectangle, 
-                                      &event->area, 
-                                      &child_event.area))
-           gtk_widget_draw (widget, &child_event.area);
+           gtk_widget_event (paned->child2, (GdkEvent *) &child_event);
        }
     }
+
   return FALSE;
 }
 
 void
-gtk_paned_add1 (GtkPaned     *paned,
-               GtkWidget    *widget)
+gtk_paned_add1 (GtkPaned  *paned,
+               GtkWidget *widget)
 {
   gtk_paned_pack1 (paned, widget, FALSE, TRUE);
 }
@@ -364,15 +350,15 @@ gtk_paned_add2 (GtkPaned  *paned,
 }
 
 void
-gtk_paned_pack1 (GtkPaned     *paned,
-                GtkWidget    *child,
-                gboolean      resize,
-                gboolean      shrink)
+gtk_paned_pack1 (GtkPaned  *paned,
+                GtkWidget *child,
+                gboolean   resize,
+                gboolean   shrink)
 {
   g_return_if_fail (paned != NULL);
   g_return_if_fail (GTK_IS_PANED (paned));
   g_return_if_fail (GTK_IS_WIDGET (child));
-  
+
   if (!paned->child1)
     {
       paned->child1 = child;
@@ -403,13 +389,13 @@ gtk_paned_pack2 (GtkPaned  *paned,
   g_return_if_fail (paned != NULL);
   g_return_if_fail (GTK_IS_PANED (paned));
   g_return_if_fail (GTK_IS_WIDGET (child));
-  
+
   if (!paned->child2)
     {
       paned->child2 = child;
       paned->child2_resize = resize;
       paned->child2_shrink = shrink;
-      
+
       gtk_widget_set_parent (child, GTK_WIDGET (paned));
 
       if (GTK_WIDGET_REALIZED (child->parent))
@@ -425,22 +411,23 @@ gtk_paned_pack2 (GtkPaned  *paned,
     }
 }
 
+
 static void
 gtk_paned_add (GtkContainer *container,
               GtkWidget    *widget)
 {
   GtkPaned *paned;
-  
+
   g_return_if_fail (container != NULL);
   g_return_if_fail (GTK_IS_PANED (container));
   g_return_if_fail (widget != NULL);
-  
+
   paned = GTK_PANED (container);
-  
+
   if (!paned->child1)
-    gtk_paned_add1 (GTK_PANED (container),widget);
+    gtk_paned_add1 (GTK_PANED (container), widget);
   else if (!paned->child2)
-    gtk_paned_add2 (GTK_PANED (container),widget);
+    gtk_paned_add2 (GTK_PANED (container), widget);
 }
 
 static void
@@ -449,57 +436,57 @@ gtk_paned_remove (GtkContainer *container,
 {
   GtkPaned *paned;
   gboolean was_visible;
-  
+
   g_return_if_fail (container != NULL);
   g_return_if_fail (GTK_IS_PANED (container));
   g_return_if_fail (widget != NULL);
-  
+
   paned = GTK_PANED (container);
   was_visible = GTK_WIDGET_VISIBLE (widget);
-  
+
   if (paned->child1 == widget)
     {
       gtk_widget_unparent (widget);
-      
+
       paned->child1 = NULL;
-      
+
       if (was_visible && GTK_WIDGET_VISIBLE (container))
-        gtk_widget_queue_resize (GTK_WIDGET (container));
+       gtk_widget_queue_resize (GTK_WIDGET (container));
     }
   else if (paned->child2 == widget)
     {
       gtk_widget_unparent (widget);
-      
+
       paned->child2 = NULL;
-      
+
       if (was_visible && GTK_WIDGET_VISIBLE (container))
-        gtk_widget_queue_resize (GTK_WIDGET (container));
+       gtk_widget_queue_resize (GTK_WIDGET (container));
     }
 }
 
 static void
 gtk_paned_forall (GtkContainer *container,
-                 gboolean      include_internals,
+                 gboolean      include_internals,
                  GtkCallback   callback,
                  gpointer      callback_data)
 {
   GtkPaned *paned;
-  
+
   g_return_if_fail (container != NULL);
   g_return_if_fail (GTK_IS_PANED (container));
   g_return_if_fail (callback != NULL);
-  
+
   paned = GTK_PANED (container);
-  
+
   if (paned->child1)
-    (* callback) (paned->child1, callback_data);
+    (*callback) (paned->child1, callback_data);
   if (paned->child2)
-    (* callback) (paned->child2, callback_data);
+    (*callback) (paned->child2, callback_data);
 }
 
 void
-gtk_paned_set_position    (GtkPaned  *paned,
-                          gint       position)
+gtk_paned_set_position (GtkPaned *paned,
+                       gint      position)
 {
   g_return_if_fail (paned != NULL);
   g_return_if_fail (GTK_IS_PANED (paned));
@@ -516,7 +503,9 @@ gtk_paned_set_position    (GtkPaned  *paned,
       paned->position_set = TRUE;
     }
   else
-    paned->position_set = FALSE;
+    {
+      paned->position_set = FALSE;
+    }
 
   gtk_widget_queue_resize (GTK_WIDGET (paned));
 }
@@ -525,40 +514,19 @@ void
 gtk_paned_set_handle_size (GtkPaned *paned,
                           guint16   size)
 {
-  gint x,y;
-  
   g_return_if_fail (paned != NULL);
   g_return_if_fail (GTK_IS_PANED (paned));
 
-  if (paned->handle)
-    {
-      gdk_window_get_geometry (paned->handle, &x, &y, NULL, NULL, NULL);
-      gdk_window_move_resize (paned->handle,
-                              x + paned->handle_size / 2 - size / 2,
-                              y + paned->handle_size / 2 - size / 2,
-                              size, size);
-    }
-  paned->handle_size = size;
-}
-
-void
-gtk_paned_set_gutter_size (GtkPaned *paned,
-                          guint16   size)
-{
-  g_return_if_fail (paned != NULL);
-  g_return_if_fail (GTK_IS_PANED (paned));
+  gtk_widget_queue_resize (GTK_WIDGET (paned));
 
-  paned->gutter_size = size;
-  
-  if (GTK_WIDGET_VISIBLE (GTK_WIDGET (paned)))
-    gtk_widget_queue_resize (GTK_WIDGET (paned));
+  paned->handle_size = size;
 }
 
 void
-gtk_paned_compute_position (GtkPaned *paned,
-                           gint      allocation,
-                           gint      child1_req,
-                           gint      child2_req)
+gtk_paned_compute_position(GtkPaned *paned,
+                          gint      allocation,
+                          gint      child1_req,
+                          gint      child2_req)
 {
   g_return_if_fail (paned != NULL);
   g_return_if_fail (GTK_IS_PANED (paned));
@@ -576,7 +544,8 @@ gtk_paned_compute_position (GtkPaned *paned,
       else if (!paned->child1_resize && paned->child2_resize)
        paned->child1_size = child1_req;
       else
-       paned->child1_size = allocation * ((gdouble)child1_req / (child1_req + child2_req));
+       paned->child1_size = allocation * ((gdouble) child1_req /
+                                          (child1_req + child2_req));
     }
   else
     {
@@ -586,9 +555,9 @@ gtk_paned_compute_position (GtkPaned *paned,
       if (paned->last_allocation >= 0)
        {
          if (paned->child1_resize && !paned->child2_resize)
-           paned->child1_size += (allocation - paned->last_allocation);
+           paned->child1_size += allocation - paned->last_allocation;
          else if (!(!paned->child1_resize && paned->child2_resize))
-           paned->child1_size = allocation * ((gdouble)paned->child1_size / (paned->last_allocation));
+           paned->child1_size = allocation * ((gdouble) paned->child1_size / (paned->last_allocation));
        }
     }
 
@@ -597,5 +566,4 @@ gtk_paned_compute_position (GtkPaned *paned,
                              paned->max_position);
 
   paned->last_allocation = allocation;
-  
 }
index 6c7cb0678535b01ce5cfff69ab9f46d444bc1f78..da0f520afe95f4e1dd04d96e2424bdb664bcea69 100644 (file)
@@ -1,3 +1,4 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /* GTK - The GIMP Toolkit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  *
@@ -18,7 +19,7 @@
  */
 
 /*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
 #ifndef __GTK_PANED_H__
 #define __GTK_PANED_H__
 
-
-#include <gdk/gdk.h>
 #include <gtk/gtkcontainer.h>
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -45,8 +43,8 @@ extern "C" {
 #define GTK_PANED_GET_CLASS(obj)        (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_PANED, GtkPanedClass))
 
 
-typedef struct _GtkPaned       GtkPaned;
-typedef struct _GtkPanedClass  GtkPanedClass;
+typedef struct _GtkPaned      GtkPaned;
+typedef struct _GtkPanedClass GtkPanedClass;
 
 struct _GtkPaned
 {
@@ -56,26 +54,28 @@ struct _GtkPaned
   GtkWidget *child2;
   
   GdkWindow *handle;
-  GdkRectangle groove_rectangle;
   GdkGC *xor_gc;
-
+  GdkCursorType cursor_type;
+  
   /*< public >*/
   guint16 handle_size;
-  guint16 gutter_size;
-
+  
   /*< private >*/
+  guint16 handle_width;
+  guint16 handle_height;
+
   gint child1_size;
   gint last_allocation;
   gint min_position;
   gint max_position;
-  
+
   guint position_set : 1;
   guint in_drag : 1;
   guint child1_shrink : 1;
   guint child1_resize : 1;
   guint child2_shrink : 1;
   guint child2_resize : 1;
-  
+
   gint16 handle_xpos;
   gint16 handle_ypos;
 };
@@ -101,20 +101,16 @@ void    gtk_paned_pack2           (GtkPaned  *paned,
                                   gboolean   shrink);
 void    gtk_paned_set_position    (GtkPaned  *paned,
                                   gint       position);
-void    gtk_paned_set_handle_size (GtkPaned *paned,
-                                  guint16   size);
-void    gtk_paned_set_gutter_size (GtkPaned *paned,
-                                  guint16   size);
+void    gtk_paned_set_handle_size (GtkPaned  *paned,
+                                  guint16    size);
 
 /* Internal function */
-void    gtk_paned_compute_position (GtkPaned *paned,
-                                   gint      allocation,
-                                   gint      child1_req,
-                                   gint      child2_req);
-
+void    gtk_paned_compute_position (GtkPaned  *paned,
+                                   gint       allocation,
+                                   gint       child1_req,
+                                   gint       child2_req);
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
-
 #endif /* __GTK_PANED_H__ */
index ece7f1948644fd7dcbfbebead6397f54b44ec3eb..30b3ac4fa3293f38f0146c0f36227a13502d78cb 100644 (file)
  */
 
 #include "gtkvpaned.h"
-#include "gtkmain.h"
-#include "gtksignal.h"
-
-static void gtk_vpaned_class_init       (GtkVPanedClass *klass);
-static void gtk_vpaned_init             (GtkVPaned      *vpaned);
-static void gtk_vpaned_size_request     (GtkWidget      *widget,
-                                        GtkRequisition *requisition);
-static void gtk_vpaned_size_allocate    (GtkWidget          *widget,
-                                        GtkAllocation      *allocation);
-static void gtk_vpaned_draw             (GtkWidget    *widget,
-                                        GdkRectangle *area);
-static void gtk_vpaned_xor_line         (GtkPaned *paned);
-static gint gtk_vpaned_button_press     (GtkWidget *widget,
-                                        GdkEventButton *event);
-static gint gtk_vpaned_button_release   (GtkWidget *widget,
-                                        GdkEventButton *event);
-static gint gtk_vpaned_motion           (GtkWidget *widget,
-                                        GdkEventMotion *event);
+
+static void     gtk_vpaned_class_init     (GtkVPanedClass *klass);
+static void     gtk_vpaned_init           (GtkVPaned      *vpaned);
+static void     gtk_vpaned_size_request   (GtkWidget      *widget,
+                                          GtkRequisition *requisition);
+static void     gtk_vpaned_size_allocate  (GtkWidget      *widget,
+                                          GtkAllocation  *allocation);
+static void     gtk_vpaned_draw           (GtkWidget      *widget,
+                                          GdkRectangle   *area);
+static void     gtk_vpaned_xor_line       (GtkPaned       *paned);
+static gboolean gtk_vpaned_button_press   (GtkWidget      *widget,
+                                          GdkEventButton *event);
+static gboolean gtk_vpaned_button_release (GtkWidget      *widget,
+                                          GdkEventButton *event);
+static gboolean gtk_vpaned_motion         (GtkWidget      *widget,
+                                          GdkEventMotion *event);
 
 GtkType
 gtk_vpaned_get_type (void)
@@ -59,11 +57,11 @@ gtk_vpaned_get_type (void)
        (GtkClassInitFunc) gtk_vpaned_class_init,
        (GtkObjectInitFunc) gtk_vpaned_init,
        /* reserved_1 */ NULL,
-        /* reserved_2 */ NULL,
-        (GtkClassInitFunc) NULL,
+       /* reserved_2 */ NULL,
+       (GtkClassInitFunc) NULL,
       };
 
-      vpaned_type = gtk_type_unique (GTK_TYPE_PANED, &vpaned_info);
+      vpaned_type = gtk_type_unique(gtk_paned_get_type(), &vpaned_info);
     }
 
   return vpaned_type;
@@ -74,7 +72,7 @@ gtk_vpaned_class_init (GtkVPanedClass *class)
 {
   GtkWidgetClass *widget_class;
 
-  widget_class = (GtkWidgetClass*) class;
+  widget_class = (GtkWidgetClass *) class;
 
   widget_class->size_request = gtk_vpaned_size_request;
   widget_class->size_allocate = gtk_vpaned_size_allocate;
@@ -87,9 +85,17 @@ gtk_vpaned_class_init (GtkVPanedClass *class)
 static void
 gtk_vpaned_init (GtkVPaned *vpaned)
 {
+  GtkPaned *paned;
+
+  g_return_if_fail (vpaned != NULL);
+  g_return_if_fail (GTK_IS_PANED (vpaned));
+
+  paned = GTK_PANED (vpaned);
+
+  paned->cursor_type = GDK_SB_V_DOUBLE_ARROW;
 }
 
-GtkWidget*
+GtkWidget *
 gtk_vpaned_new (void)
 {
   GtkVPaned *vpaned;
@@ -130,7 +136,7 @@ gtk_vpaned_size_request (GtkWidget      *widget,
       requisition->height += child_requisition.height;
     }
 
-  requisition->height += GTK_CONTAINER (paned)->border_width * 2 + paned->gutter_size;
+  requisition->height += GTK_CONTAINER (paned)->border_width * 2 + paned->handle_size;
   requisition->width += GTK_CONTAINER (paned)->border_width * 2;
 }
 
@@ -143,7 +149,6 @@ gtk_vpaned_size_allocate (GtkWidget     *widget,
   GtkRequisition child2_requisition;
   GtkAllocation child1_allocation;
   GtkAllocation child2_allocation;
-  GdkRectangle old_groove_rectangle;
   guint16 border_width;
 
   g_return_if_fail (widget != NULL);
@@ -164,85 +169,65 @@ gtk_vpaned_size_allocate (GtkWidget     *widget,
     gtk_widget_get_child_requisition (paned->child2, &child2_requisition);
   else
     child2_requisition.height = 0;
-    
-  gtk_paned_compute_position (paned,
-                             widget->allocation.height
-                               - paned->gutter_size
-                               - 2 * border_width,
-                             child1_requisition.height,
-                             child2_requisition.height);
+
+  gtk_paned_compute_position(paned,
+                            widget->allocation.height
+                              - paned->handle_size
+                              - 2 * border_width,
+                            child1_requisition.height,
+                            child2_requisition.height);
 
   /* Move the handle before the children so we don't get extra expose events */
 
-  paned->handle_xpos = allocation->width - border_width - 2 * paned->handle_size;
-  paned->handle_ypos = paned->child1_size + border_width + paned->gutter_size / 2 - paned->handle_size / 2;
+  paned->handle_xpos = 0;
+  paned->handle_ypos = paned->child1_size + border_width;
+  paned->handle_width = widget->allocation.width;
+  paned->handle_height = paned->handle_size;
 
-  if (GTK_WIDGET_REALIZED (widget))
+  if (GTK_WIDGET_REALIZED(widget))
     {
       gdk_window_move_resize (widget->window,
                              allocation->x, allocation->y,
-                             allocation->width, allocation->height);
-      
-      gdk_window_move (paned->handle, paned->handle_xpos, paned->handle_ypos);
+                             allocation->width,
+                             allocation->height);
+
+      gdk_window_move_resize (paned->handle,
+                             paned->handle_xpos,
+                             paned->handle_ypos,
+                             paned->handle_width,
+                             paned->handle_size);
     }
 
-  child1_allocation.width = child2_allocation.width = MAX (1, (gint)allocation->width - border_width * 2);
+  child1_allocation.width = child2_allocation.width =  MAX(1, (gint) allocation->width - border_width * 2);
   child1_allocation.height = paned->child1_size;
   child1_allocation.x = child2_allocation.x = border_width;
   child1_allocation.y = border_width;
-  
-  old_groove_rectangle = paned->groove_rectangle;
-
-  paned->groove_rectangle.y = child1_allocation.y 
-    + child1_allocation.height + paned->gutter_size / 2 - 1;
-  paned->groove_rectangle.x = 0;
-  paned->groove_rectangle.height = 2;
-  paned->groove_rectangle.width = allocation->width;
-  
-  if (GTK_WIDGET_DRAWABLE (widget) &&
-      ((paned->groove_rectangle.x != old_groove_rectangle.x) ||
-       (paned->groove_rectangle.y != old_groove_rectangle.y) ||
-       (paned->groove_rectangle.width != old_groove_rectangle.width) ||
-       (paned->groove_rectangle.height != old_groove_rectangle.height)))
-    {
-      gtk_widget_queue_clear_area (widget,
-                                  old_groove_rectangle.x,
-                                  old_groove_rectangle.y,
-                                  old_groove_rectangle.width,
-                                  old_groove_rectangle.height);
-      gtk_widget_queue_draw_area (widget,
-                                 paned->groove_rectangle.x,
-                                 paned->groove_rectangle.y,
-                                 paned->groove_rectangle.width,
-                                 paned->groove_rectangle.height);
-    }
-  
-  child2_allocation.y = paned->groove_rectangle.y + paned->gutter_size / 2 + 1;
-  child2_allocation.height = MAX (1, (gint)allocation->height 
-    - child2_allocation.y - border_width);
-  
+
+  child2_allocation.y = child1_allocation.y + child1_allocation.height + paned->handle_height;
+  child2_allocation.height = MAX(1, (gint) allocation->height - child2_allocation.y - border_width);
+
   /* Now allocate the childen, making sure, when resizing not to
    * overlap the windows */
-  if (GTK_WIDGET_MAPPED(widget) &&
+  if (GTK_WIDGET_MAPPED (widget) &&
       paned->child1 && GTK_WIDGET_VISIBLE (paned->child1) &&
       paned->child1->allocation.height < child1_allocation.height)
     {
       if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2))
-       gtk_widget_size_allocate (paned->child2, &child2_allocation);
-      gtk_widget_size_allocate (paned->child1, &child1_allocation);      
+       gtk_widget_size_allocate(paned->child2, &child2_allocation);
+      gtk_widget_size_allocate(paned->child1, &child1_allocation);
     }
   else
     {
       if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1))
-       gtk_widget_size_allocate (paned->child1, &child1_allocation);
+       gtk_widget_size_allocate(paned->child1, &child1_allocation);
       if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2))
-       gtk_widget_size_allocate (paned->child2, &child2_allocation);
+       gtk_widget_size_allocate(paned->child2, &child2_allocation);
     }
 }
 
 static void
 gtk_vpaned_draw (GtkWidget    *widget,
-               GdkRectangle *area)
+                GdkRectangle *area)
 {
   GtkPaned *paned;
   GdkRectangle handle_area, child_area;
@@ -253,51 +238,95 @@ gtk_vpaned_draw (GtkWidget    *widget,
 
   if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget))
     {
-      gint width, height;
-      
       paned = GTK_PANED (widget);
       border_width = GTK_CONTAINER (paned)->border_width;
 
       gdk_window_clear_area (widget->window,
-                            area->x, area->y, area->width, area->height);
+                            area->x, area->y, area->width,
+                            area->height);
 
-      /* Redraw the handle
-       */
-      gdk_window_get_size (paned->handle, &width, &height);
-      
       handle_area.x = paned->handle_xpos;
       handle_area.y = paned->handle_ypos;
-      handle_area.width = width;
-      handle_area.height = height;
+      handle_area.width = paned->handle_height;
+      handle_area.height = paned->handle_size;
 
       if (gdk_rectangle_intersect (&handle_area, area, &child_area))
        {
-         child_area.x -= handle_area.x;
-         child_area.y -= handle_area.y;
-         gtk_paint_box (widget->style, paned->handle,
-                        GTK_WIDGET_STATE(widget),
-                        GTK_SHADOW_OUT, 
-                        &child_area, widget, "paned",
-                        0, 0,
-                        width, height);
+         if (widget->allocation.height > 2)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 - 1,
+                             paned->handle_size/2 - 1);
+           }
+         if (widget->allocation.height > 11)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 + 5,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 + 4,
+                             paned->handle_size/2 - 1);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 - 5,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 - 6,
+                             paned->handle_size/2 - 1);
+           }
+         if (widget->allocation.height > 20)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 - 10,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 - 11,
+                             paned->handle_size/2 - 1);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 + 10,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 + 9,
+                             paned->handle_size/2 - 1);
+           }
+         if (widget->allocation.height > 30)
+           {
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 - 15,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 - 16,
+                             paned->handle_size/2 - 1);
+             gdk_draw_point (paned->handle,
+                             widget->style->fg_gc[GTK_STATE_NORMAL],
+                             paned->handle_width/2 + 15,
+                             paned->handle_size/2);
+             gdk_draw_point (paned->handle,
+                             widget->style->bg_gc[GTK_STATE_PRELIGHT],
+                             paned->handle_width/2 + 14,
+                             paned->handle_size/2 - 1);
+           }
        }
-
-      /* Redraw the groove
-       */
-      gtk_paint_hline(widget->style, widget->window, GTK_STATE_NORMAL,
-                     area, widget, "vpaned",
-                     0, widget->allocation.width - 1,
-                     border_width + paned->child1_size + paned->gutter_size / 2 - 1);
-
       /* Redraw the children
        */
-      if (paned->child1 &&
-         gtk_widget_intersect (paned->child1, area, &child_area))
-        gtk_widget_draw (paned->child1, &child_area);
-      if (paned->child2 &&
-         gtk_widget_intersect (paned->child2, area, &child_area))
-        gtk_widget_draw (paned->child2, &child_area);
-
+      if (paned->child1 && gtk_widget_intersect (paned->child1, area, &child_area))
+       gtk_widget_draw (paned->child1, &child_area);
+      if (paned->child2 && gtk_widget_intersect (paned->child2, area, &child_area))
+       gtk_widget_draw (paned->child2, &child_area);
     }
 }
 
@@ -308,7 +337,7 @@ gtk_vpaned_xor_line (GtkPaned *paned)
   GdkGCValues values;
   guint16 ypos;
 
-  widget = GTK_WIDGET(paned);
+  widget = GTK_WIDGET (paned);
 
   if (!paned->xor_gc)
     {
@@ -316,12 +345,14 @@ gtk_vpaned_xor_line (GtkPaned *paned)
       values.subwindow_mode = GDK_INCLUDE_INFERIORS;
       paned->xor_gc = gdk_gc_new_with_values (widget->window,
                                              &values,
-                                             GDK_GC_FUNCTION |
-                                             GDK_GC_SUBWINDOW);
+                                             GDK_GC_FUNCTION | GDK_GC_SUBWINDOW);
     }
 
+  gdk_gc_set_line_attributes (paned->xor_gc, 2, GDK_LINE_SOLID,
+                             GDK_CAP_NOT_LAST, GDK_JOIN_BEVEL);
+
   ypos = paned->child1_size
-    + GTK_CONTAINER (paned)->border_width + paned->gutter_size / 2;
+    + GTK_CONTAINER (paned)->border_width + paned->handle_size / 2;
 
   gdk_draw_line (widget->window, paned->xor_gc,
                 0,
@@ -330,13 +361,14 @@ gtk_vpaned_xor_line (GtkPaned *paned)
                 ypos);
 }
 
-static gint
-gtk_vpaned_button_press (GtkWidget *widget, GdkEventButton *event)
+static gboolean
+gtk_vpaned_button_press (GtkWidget      *widget,
+                        GdkEventButton *event)
 {
   GtkPaned *paned;
 
-  g_return_val_if_fail (widget != NULL,FALSE);
-  g_return_val_if_fail (GTK_IS_PANED (widget),FALSE);
+  g_return_val_if_fail (widget != NULL, FALSE);
+  g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
 
   paned = GTK_PANED (widget);
 
@@ -347,22 +379,26 @@ gtk_vpaned_button_press (GtkWidget *widget, GdkEventButton *event)
       /* We need a server grab here, not gtk_grab_add(), since
        * we don't want to pass events on to the widget's children */
       gdk_pointer_grab (paned->handle, FALSE,
-                       GDK_POINTER_MOTION_HINT_MASK 
-                       | GDK_BUTTON1_MOTION_MASK 
-                       | GDK_BUTTON_RELEASE_MASK,
-                       NULL, NULL, event->time);
+                       GDK_POINTER_MOTION_HINT_MASK
+                       | GDK_BUTTON1_MOTION_MASK
+                       | GDK_BUTTON_RELEASE_MASK, NULL, NULL,
+                       event->time);
       paned->child1_size += event->y - paned->handle_size / 2;
       paned->child1_size = CLAMP (paned->child1_size, 0,
-                                  widget->allocation.height - paned->gutter_size
-                                  - 2 * GTK_CONTAINER (paned)->border_width);
-      gtk_vpaned_xor_line (paned);
+                                 widget->allocation.height -
+                                 paned->handle_size -
+                                 2 * GTK_CONTAINER (paned)->border_width);
+      gtk_vpaned_xor_line(paned);
+
+      return TRUE;
     }
 
-  return TRUE;
+  return FALSE;
 }
 
-static gint
-gtk_vpaned_button_release (GtkWidget *widget, GdkEventButton *event)
+static gboolean
+gtk_vpaned_button_release (GtkWidget      *widget,
+                          GdkEventButton *event)
 {
   GtkPaned *paned;
 
@@ -378,13 +414,16 @@ gtk_vpaned_button_release (GtkWidget *widget, GdkEventButton *event)
       paned->position_set = TRUE;
       gdk_pointer_ungrab (event->time);
       gtk_widget_queue_resize (GTK_WIDGET (paned));
+
+      return TRUE;
     }
 
-  return TRUE;
+  return FALSE;
 }
 
-static gint
-gtk_vpaned_motion (GtkWidget *widget, GdkEventMotion *event)
+static gboolean
+gtk_vpaned_motion (GtkWidget      *widget,
+                  GdkEventMotion *event)
 {
   GtkPaned *paned;
   gint y;
@@ -393,21 +432,19 @@ gtk_vpaned_motion (GtkWidget *widget, GdkEventMotion *event)
   g_return_val_if_fail (GTK_IS_PANED (widget), FALSE);
 
   if (event->is_hint || event->window != widget->window)
-      gtk_widget_get_pointer(widget, NULL, &y);
+    gtk_widget_get_pointer (widget, NULL, &y);
   else
-      y = event->y;
+    y = event->y;
 
   paned = GTK_PANED (widget);
 
   if (paned->in_drag)
     {
-      gint size = y - GTK_CONTAINER (paned)->border_width - paned->gutter_size/2;
-      
-      gtk_vpaned_xor_line (paned);
-      paned->child1_size = CLAMP (size,
-                                 paned->min_position,
-                                 paned->max_position);
+      gint size = y - GTK_CONTAINER(paned)->border_width - paned->handle_size / 2;
+
       gtk_vpaned_xor_line (paned);
+      paned->child1_size = CLAMP (size, paned->min_position, paned->max_position);
+      gtk_vpaned_xor_line(paned);
     }
 
   return TRUE;
index 08382ee9abf49b7d402cc778e590a63a15e6e6a0..9edce840d53ff2233713bc925dcd6b69dc5b0d05 100644 (file)
@@ -18,7 +18,7 @@
  */
 
 /*
- * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
 #ifndef __GTK_VPANED_H__
 #define __GTK_VPANED_H__
 
-
-#include <gdk/gdk.h>
 #include <gtk/gtkpaned.h>
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -45,8 +42,8 @@ extern "C" {
 #define GTK_VPANED_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_VPANED, GtkVPanedClass))
 
 
-typedef struct _GtkVPaned       GtkVPaned;
-typedef struct _GtkVPanedClass  GtkVPanedClass;
+typedef struct _GtkVPaned      GtkVPaned;
+typedef struct _GtkVPanedClass GtkVPanedClass;
 
 struct _GtkVPaned
 {
@@ -58,14 +55,12 @@ struct _GtkVPanedClass
   GtkPanedClass parent_class;
 };
 
-
 GtkType    gtk_vpaned_get_type (void);
-GtkWidgetgtk_vpaned_new      (void);
+GtkWidget *gtk_vpaned_new      (void);
 
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
-
 #endif /* __GTK_VPANED_H__ */